home *** CD-ROM | disk | FTP | other *** search
- PAGE 62,132
- TITLE DoubleDOS Equates and Interrupt explanations
-
-
- Dos_Call EQU 21h ;DOS Service Interrupt
-
-
- ; The following is a list of function calls that DoubleDOS adds to DOS
- ; These are additional functions available through INT 21H and appear as
- ; functions E0 hex to EE hex. (calls F0h - FEh are identical) If any of
- ; these calls to DOS are made when DoubleDOS is NOT running, then no
- ; function is performed and AL is returned zero by DOS.
-
- ; Notes: If your program must run with non PC-DOS Operating Systems then
- ; calls E0-EE must be used and not F0-FE. Both ranges are functionally
- ; identical. The term "visible" means "Has keyboard attached." The term
- ; "Invisible" means "No keyboard attached."
-
-
- DD_Menu_Control EQU 0E0h ;DoubleDOS Menu control functions
-
- ; The following are AL values for this service.
-
- Switch_Jobs EQU 01h ;Exchange Tasks - Visible/Invisible
- Resume_Invisible EQU 73h ;Resume Invisible job if suspended
- Kill_Other_Job EQU 74h ;Kill other job
- Suspend_Invisible EQU 75h ;Suspend Invisible job
-
-
- DD_Clear_KBD EQU 0E1h ;Clear keyboard buffer for the current
- ; job only. This call does not clear
- ; the standard input buffer if it is
- ; not the keyboard.
-
-
- DD_Send_Char EQU 0E2h ;Send ASCII charachter in AL to other
- ; keyboard buffer. AL returns 0 if
- ; xfer successful, 1 if buffer is full.
- ; Keyboard buffer is 128 chars.
-
-
- DD_Add_Char EQU 0E3h ;Add ASCII charachter in AL to keyboard
- ; buffer. Error return same as the
- ; DD_Send_Char service.
-
- ; Programmable redirection of keyboard input can be accomplished by
- ; using this call in conjunction with function E8 to disable the
- ; keyboard (this will prevent unexpected user intervention), and
- ; optionally function E1 to flush unwanted keyboard input. When
- ; redirection is completed, the keyboard can be reenabled with
- ; function E8.
-
-
- DD_Status EQU 0E4h ;Return current program status in AL
- ; AL = 0 DoubleDOS NOT running
- ; AL = 1 Program is Visible
- ; AL = 2 Program is Invisible
- ; AH = Task Number
-
-
- DD_Other_Status EQU 0E5h ;Return other program status in AL
- ; AL = 0 No program running
- ; AL = 1 Program is running
- ; AL = 2 Program is suspended
-
-
- DD_KBD_Flags EQU 0E8h ;Set/reset keyboard control flags by
- ; mask bits in DX. "1" enables, "0"
- ; disables. On return, DX contains
- ; the previous flags.
-
- ; Note: Disabling the Ctrl/Prtsc (Bit 4 = 0) will allow this key sequence
- ; to be intercepted by applications programs. Disabling any other key
- ; sequence disables those keys completely.
-
- ; AL = 0 Sets flags for this program
- ; AL = 1 Sets flags for other program
-
- ; DX = Keyboard control flags
-
- ; = 0001 Bit 0 = Menu
- ; = 0002 Bit 1 = Exchange
- ; = 0004 Bit 2 = Entire keyboard enable/disable
- ; = 0008 Bit 3 = Ctrl/C
- ; = 0010 Bit 4 = Crtl/Prtsc
- ; = 0020 Bit 5 = Alt/Erase
- ; = 0040 Bit 6 = Ctrl/Break
- ; = 0080 Bit 7 = Ctrl/Numlock
- ; = 0100 Bit 8 = Shift/Prtsc
- ; = 0200 Bit 0 = (Undefined)
- ; = 0400 Bit 0 = (Undefined)
- ; = 0800 Bit 0 = (Undefined)
- ; = 1000 Bit 0 = (Undefined)
- ; = 2000 Bit 0 = (Undefined)
- ; = 4000 Bit 0 = Cancel key (Clear Keyboard Buffer)
- ; = 8000 Bit 0 = Suspend Key
-
-
- SS_Set_Timeshare EQU 0E9h ;Set timesharing priority
-
- ; AL = 0 Visible program gets 70% Invisible gets 30% (Default)
- ; AL = 1 Visible program gets 50% Invisible gets 50% of time
- ; AL = 2 Visible program gets 30% Invisible gets 70% of time
- ; AL = 3 Top program gets 70% Bottom gets 30% of time
- ; AL = 4 Top program gets 30% Bottom gets 70% of time
-
-
- Timeshare_Off EQU 0EAh ;Turn off timesharing, Ctrl/Break,
- ; Ctrl/Numlock and Menu. This service
- ; also performed by INT 0FAh
-
- ; The other memory section is suspended by this call. A request for any
- ; of the funtions disabled will be saved and executed after INT 0FBh is
- ; issued. Any DOS function call less than 0Dh will automatically
- ; terminate this mode as if INT 0FBh had been issued.
-
-
- Timeshare_On EQU 0EBh ;Turn on timesharing, etc.
- ; This service is also performed by
- ; INT 0FBh
-
- Display_Address EQU 0ECh ;Return current display buffer address
- ; in ES. This service is also performed
- ; by INT 0FCh
-
- ; The segment address of the current display buffer is returned in the ES
- ; register. This function is used for programs which do direct screen
- ; updates, such as 1-2-3. The address returned will be:
- ; B800h - If program is visible on Color Adapter
- ; B000h - If program is visible on Monochrome Adapter
- ; xxxxh - If program is invisible (Address of virtual buffer)
-
-
- Give_Other_Time EQU 0EEh ;Give time to other task. Thsi service
- ; is also performed by INT 0FEh
- ;
- ; AL = 0 - 0FFh : Number of 55ms time intervals to give away.
- ;
- ; On the next timer interrupt following this call, if the other memory section
- ; is active, it will recieve AL extra 55ms time intervals before the calling
- ; program will recieve another interval. A loop of these calls will allow
- ; the calling program to give all of it's wasted time to the other memory
- ; section. Programs waiting for keyboard input could do the following:
- ;
- ; Keyloop: mov AH,1
- ; int 16H ;Get keyboard status
- ; jnz Have_One ;A key was stuck
- ; call Do_Anything ;Rest of process loop
- ;
- ;* Here is a good place to give some time to the other task
- ;
- ; mov AL,2 ;Give extra 110ms to other task
- ; int 0FEH ;Other task also gets unused portion
- ; ;of current clock cycle
- ; jmp Keyloop ;Other task has already run
- ;
- ; This interrupt will not guarantee that the requested time will actually
- ; be spent by the other program. If the other program is also "giving
- ; away time" doing keyboard input, printing etc. then your routine will
- ; still receive all unused processing time, ie. when the other task does
- ; int 0FEh it will force an immediate return from the int 0feh in your
- ; program. DoubleDOS uses this routine to facilitate overlapped
- ; processing when waiting for devices to respond.
-
-
- ; DoubleDOS VIDEO ROUTINES (INT 10H): The BIOS replacement video handler
- ; built into DoubleDOS is Enhanced to provide all features of the IBM PC-
- ; AT video handler including the WRITE STRING function, as well as all
- ; INT 10H video features built into the IBM TOPVIEW product. These
- ; features are syntactically identical to their IBM counterparts.
-
-
-
-
-